home *** CD-ROM | disk | FTP | other *** search
/ The Utilities Experience / The Utilities Experience - Volume 1.iso / software / emulation / amoricv0_9 / src / cpumacros_000.asm < prev    next >
Assembly Source File  |  1995-10-29  |  2KB  |  99 lines

  1.  
  2. ; *** Macros Test des drapeaux ***
  3.  
  4. ; *** N et Z
  5.  
  6. TEST_NZ: MACRO
  7.      move.w    sr,d0
  8.     andi.w    #%00001100,d0    ; Bits Z et N
  9.     andi.b    #%01111101,d4   ; (bits N et Z de P a 0)
  10.     or.b    TabNZ-TabP(A3,D0.W),D4
  11.     ENDM
  12.  
  13.         
  14. ; *** Macro Test des drapeaux N,Z et C ***
  15.     
  16. TEST_NZC: MACRO
  17.      move.w    sr,d0
  18.     andi.w    #%00001101,d0    ; Bits Z,N et C
  19.     andi.b    #%01111100,d4   ; (bits N,Z et C de P a 0)
  20.     or.b    TabNZC-TabP(A3,D0.W),D4
  21.     ENDM
  22.  
  23. ; *** Macro Test des drapeaux N,Z,C et V ***
  24.     
  25. TEST_NZCV: MACRO
  26.      move.w    sr,d0
  27.     andi.w    #%00001111,d0    ; Bits Z,N,C et V
  28.     andi.b    #%00111100,d4   ; (bits N,V,Z et C de P a 0)
  29.     or.b    TabNZCV-TabP(A3,D0.W),D4
  30.     ENDM
  31.  
  32. ; *** Mettre Z de CCR a 0 et X en fction de C de P
  33.  
  34. SET_C2X:MACRO
  35.     move.w    sr,D0
  36.     TST_PB    C_BIT
  37.     beq.b    SCX_NoCarry\@
  38.     bset    #4,D0
  39.     bra.b    SCX_End\@
  40. SCX_NoCarry\@:
  41.     bclr    #4,D0
  42. SCX_End\@:
  43.     move    D0,ccr
  44.     ENDM
  45.  
  46. SET_XZ_ADC:MACRO
  47.     move.w    sr,D0
  48.     TST_PB    C_BIT
  49.     beq.b    SXZA_NoCarry\@
  50.     bset    #4,D0
  51.     bra.b    SXZA_End\@
  52. SXZA_NoCarry\@:
  53.     bclr    #4,D0
  54. SXZA_End\@:
  55.     bset    #2,D0    ; Mettre Z a 1
  56.     move    D0,ccr
  57.     ENDM
  58.  
  59. SET_XZ_SBC:MACRO
  60.     move.w    sr,D0
  61.     TST_PB    C_BIT
  62.     bne.b    SXZS_NoCarry\@
  63.     bset    #4,D0
  64.     bra.b    SXZS_End\@
  65. SXZS_NoCarry\@:
  66.     bclr    #4,D0
  67. SXZS_End\@:
  68.     bset    #2,D0    ; Mettre Z a 1
  69.     move    D0,ccr
  70.     ENDM
  71.  
  72. ; *** Macros Tests NZC pour CMP,CPX,CPY ***
  73.  
  74. TEST_CMP: MACRO
  75.      move.w    sr,d0
  76.     andi.w    #%00001101,d0    ; Bits Z,N et C
  77.     andi.b    #%01111100,d4   ; (bits N,Z et C de P a 0)
  78.     or.b    TabNZC_CMP-TabP(A3,D0.W),D4
  79.     ENDM
  80.  
  81. TO_LOOP:MACRO
  82. TOLoop\@:
  83.     addq.l    #1,D0
  84.     move.l    D0,A5
  85.     add.l    D0,D0
  86.     move.w    (A6,D0.L),D6
  87.     move.l    A5,D0
  88.     tst.w    D6
  89.     beq.b    TOFock    
  90.     cmp.l    D6,D7
  91.     bne.b    TOLoop\@
  92.  
  93.     lea    IO_AmigaRoutineTable(PC),A6
  94.     lsl.l    #2,D0
  95.     move.l    (A6,D0.L),A6
  96.     jmp    (A6)
  97.     ENDM
  98.     
  99.